import axios from "axios";
import store from "@/store";

//创建新的axios，功能和axios相同(目的：可以配置额外的功能)
// const instance = axios.create({
//   //请求的公共前置路径
//   baseURL: "http://localhost:8888",
//   //设置超时，超过3s还未结束直接报错
//   timeout: 3000,
// });

const instance = axios.create({ 
  baseURL: 'http://localhost:8888/', 
  timeout: 10000
  
})

// // 设置请求拦截器，自动添加 token
instance.interceptors.request.use(config => {
  const token = store.state.user?.token; // 使用可选链
  if (token) {
    config.headers['Authorization'] = `Bearer ${token}`;
  }
  return config;
});
// 设置响应拦截器，处理 token 过期
instance.interceptors.response.use(
  response => response.data,
  error => {
    if (error.response && error.response.status === 401) {
      // token过期或无效
      // 清除本地存储的用户信息
      store.commit('setUser'); 
      // 跳转到登录页面
      router.push('/adminLogin');
      Message.error('登录已过期，请重新登录');
    }
    return Promise.reject(error);
  }
)



//拦截请求,在请求前拦截,比如设置公共请求头等(之后说)
// 配置默认携带cookie
// newAxios.defaults.withCredentials = true;
// instance.defaults.withCredentials = true;
//暴露newAxios
export default instance;
